import store from '@/store'
import { session } from '@/utils/jcore/storage'
import router, { resetRouter } from './index'
import { LOGIN_URL } from '@/config/config'

/**登出系统 */
export function LogOut() {
  // 重置路由
  resetRouter()
  // 清空侧边栏及菜单
  store.dispatch('app/setMenuList', [])
  // 清除登录信息
  session.clear()
  // 重定向到登录页
  if (router.currentRoute.path != LOGIN_URL) {
    router.replace(LOGIN_URL)
  }
}

/**
 * 使用递归，过滤出需要渲染在左侧菜单的列表（剔除 isHide == true 的菜单）
 * @param {Array} menuList
 * @returns
 */
export function getShowMenuList(menuList) {
  let newMenuList = JSON.parse(JSON.stringify(menuList))
  return newMenuList.filter((item) => {
    item.children?.length && (item.children = getShowMenuList(item.children))
    return !item.meta?.isHide
  })
}
